package com.eportal.struts.action;

import java.sql.Timestamp;
import java.util.Date;
import java.util.List;

import com.eportal.ORM.UserView;
import com.eportal.ORM.WtYhtAccount;
import com.eportal.core.BaseAction;
import com.eportal.core.Page;
import com.eportal.core.Util;
import com.eportal.service.AdminService;

public class YhtAction extends BaseAction {
	AdminService service;
	AdminService serviceOracle;
	private Page page;
	private String start = "0";
	private String limit = "30";
	private String startDate;
	private String endDate;
	private boolean success;
	private String message;
	private String yhtId;
	private String yhtBankCode;
	private String yhtAccountName;
	private String yhtAccountNo;
	private String yhtAccountType;
	private String yhtIdNo;
	private String yhtAddress;
	private String yhtZip;
	private String yhtPhone;
	private String yhtResponse;
	private String yhtOrgcode;
	private Timestamp yhtCadt;
	private Timestamp yhtUpdt;
	private String yhtBankName;
	
	private String yhtSendCode;
	private String yhtRecCode;
	private String yhtResp;
	private String yhtPayType;
	private String yhtToolType;
	private String yhtOutAccount;
	private String yhtOutAccountName;
	private String yhtInBankCode;
	private String yhtInAccount;
	private String yhtAmt;
	private String yhtTargetNo;
	private String yhtAuthNo;
	private String yhtPorjectNo;
	private String yhtPorjectSn;
	private String yhtRemark;
	private String yhtQsDate;
	private String yhtQsTrace;
	
	
	
	public String getStartDate() {
		return startDate;
	}

	public void setStartDate(String startDate) {
		this.startDate = startDate;
	}

	public String getEndDate() {
		return endDate;
	}

	public void setEndDate(String endDate) {
		this.endDate = endDate;
	}

	public String getYhtSendCode() {
		return yhtSendCode;
	}

	public void setYhtSendCode(String yhtSendCode) {
		this.yhtSendCode = yhtSendCode;
	}

	public String getYhtRecCode() {
		return yhtRecCode;
	}

	public void setYhtRecCode(String yhtRecCode) {
		this.yhtRecCode = yhtRecCode;
	}

	public String getYhtResp() {
		return yhtResp;
	}

	public void setYhtResp(String yhtResp) {
		this.yhtResp = yhtResp;
	}

	public String getYhtPayType() {
		return yhtPayType;
	}

	public void setYhtPayType(String yhtPayType) {
		this.yhtPayType = yhtPayType;
	}

	public String getYhtToolType() {
		return yhtToolType;
	}

	public void setYhtToolType(String yhtToolType) {
		this.yhtToolType = yhtToolType;
	}

	public String getYhtOutAccount() {
		return yhtOutAccount;
	}

	public void setYhtOutAccount(String yhtOutAccount) {
		this.yhtOutAccount = yhtOutAccount;
	}

	public String getYhtOutAccountName() {
		return yhtOutAccountName;
	}

	public void setYhtOutAccountName(String yhtOutAccountName) {
		this.yhtOutAccountName = yhtOutAccountName;
	}

	public String getYhtInBankCode() {
		return yhtInBankCode;
	}

	public void setYhtInBankCode(String yhtInBankCode) {
		this.yhtInBankCode = yhtInBankCode;
	}

	public String getYhtInAccount() {
		return yhtInAccount;
	}

	public void setYhtInAccount(String yhtInAccount) {
		this.yhtInAccount = yhtInAccount;
	}

	public String getYhtAmt() {
		return yhtAmt;
	}

	public void setYhtAmt(String yhtAmt) {
		this.yhtAmt = yhtAmt;
	}

	public String getYhtTargetNo() {
		return yhtTargetNo;
	}

	public void setYhtTargetNo(String yhtTargetNo) {
		this.yhtTargetNo = yhtTargetNo;
	}

	public String getYhtAuthNo() {
		return yhtAuthNo;
	}

	public void setYhtAuthNo(String yhtAuthNo) {
		this.yhtAuthNo = yhtAuthNo;
	}

	public String getYhtPorjectNo() {
		return yhtPorjectNo;
	}

	public void setYhtPorjectNo(String yhtPorjectNo) {
		this.yhtPorjectNo = yhtPorjectNo;
	}

	public String getYhtPorjectSn() {
		return yhtPorjectSn;
	}

	public void setYhtPorjectSn(String yhtPorjectSn) {
		this.yhtPorjectSn = yhtPorjectSn;
	}

	public String getYhtRemark() {
		return yhtRemark;
	}

	public void setYhtRemark(String yhtRemark) {
		this.yhtRemark = yhtRemark;
	}

	public String getYhtQsDate() {
		return yhtQsDate;
	}

	public void setYhtQsDate(String yhtQsDate) {
		this.yhtQsDate = yhtQsDate;
	}

	public String getYhtQsTrace() {
		return yhtQsTrace;
	}

	public void setYhtQsTrace(String yhtQsTrace) {
		this.yhtQsTrace = yhtQsTrace;
	}

	public String getYhtId() {
		return yhtId;
	}

	public void setYhtId(String yhtId) {
		this.yhtId = yhtId;
	}

	public String getYhtBankCode() {
		return yhtBankCode;
	}

	public void setYhtBankCode(String yhtBankCode) {
		this.yhtBankCode = yhtBankCode;
	}

	public String getYhtAccountType() {
		return yhtAccountType;
	}

	public void setYhtAccountType(String yhtAccountType) {
		this.yhtAccountType = yhtAccountType;
	}

	public String getYhtIdNo() {
		return yhtIdNo;
	}

	public void setYhtIdNo(String yhtIdNo) {
		this.yhtIdNo = yhtIdNo;
	}

	public String getYhtAddress() {
		return yhtAddress;
	}

	public void setYhtAddress(String yhtAddress) {
		this.yhtAddress = yhtAddress;
	}

	public String getYhtZip() {
		return yhtZip;
	}

	public void setYhtZip(String yhtZip) {
		this.yhtZip = yhtZip;
	}

	public String getYhtPhone() {
		return yhtPhone;
	}

	public void setYhtPhone(String yhtPhone) {
		this.yhtPhone = yhtPhone;
	}

	public String getYhtResponse() {
		return yhtResponse;
	}

	public void setYhtResponse(String yhtResponse) {
		this.yhtResponse = yhtResponse;
	}

	public String getYhtOrgcode() {
		return yhtOrgcode;
	}

	public void setYhtOrgcode(String yhtOrgcode) {
		this.yhtOrgcode = yhtOrgcode;
	}

	public Timestamp getYhtCadt() {
		return yhtCadt;
	}

	public void setYhtCadt(Timestamp yhtCadt) {
		this.yhtCadt = yhtCadt;
	}

	public Timestamp getYhtUpdt() {
		return yhtUpdt;
	}

	public void setYhtUpdt(Timestamp yhtUpdt) {
		this.yhtUpdt = yhtUpdt;
	}

	public String getYhtBankName() {
		return yhtBankName;
	}

	public void setYhtBankName(String yhtBankName) {
		this.yhtBankName = yhtBankName;
	}

	public String getYhtAccountName() {
		return yhtAccountName;
	}

	public void setYhtAccountName(String yhtAccountName) {
		this.yhtAccountName = yhtAccountName;
	}

	public String getYhtAccountNo() {
		return yhtAccountNo;
	}

	public void setYhtAccountNo(String yhtAccountNo) {
		this.yhtAccountNo = yhtAccountNo;
	}

	public AdminService getService() {
		return service;
	}

	public void setService(AdminService service) {
		this.service = service;
	}

	public AdminService getServiceOracle() {
		return serviceOracle;
	}

	public void setServiceOracle(AdminService serviceOracle) {
		this.serviceOracle = serviceOracle;
	}

	public Page getPage() {
		return page;
	}

	public void setPage(Page page) {
		this.page = page;
	}

	public String getStart() {
		return start;
	}

	public void setStart(String start) {
		this.start = start;
	}

	public String getLimit() {
		return limit;
	}

	public void setLimit(String limit) {
		this.limit = limit;
	}

	public boolean isSuccess() {
		return success;
	}

	public void setSuccess(boolean success) {
		this.success = success;
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}
	
	public String getSendInfo(){
		LOG.info("读取一户通借记数据...");
		UserView m = (UserView) getRequest().getSession().getAttribute(
				"mpay_user");
		int s = Integer.valueOf(start);
		int l = Integer.valueOf(limit);
		String sql = "";
		if (m.getIsAll() == 1) {
			sql = " where 1=1 ";
		} else {
			sql = " where YHT_ORGCODE = '" + m.getId() + "' ";
		}
		yhtOutAccount = yhtOutAccount == null ? "" : yhtOutAccount.trim();
		if (!yhtOutAccount.equals("")) {
			sql += " and YHT_OUT_ACCOUNT like '%" + yhtOutAccount + "%' ";
		}
		startDate = startDate == null ? "" : startDate.trim();
		endDate = endDate == null ? "" : endDate.trim();
		if (!startDate.equals("") && !endDate.equals("")) {
			sql += " and (YHT_DATE between '" + startDate + "' and '" + endDate
					+ "') ";
		}
		int start = 1;
		if (s != 0)
			start = s / 30 + 1;
		// System.out.println(sql);
		List userList = serviceOracle
				.query("from WtYhtPayinfo" + sql, start, l);
		page = new Page();
		page.setRoot(userList);
		page.setTotalProperty(serviceOracle
				.countQuery("select count(*) from WtYhtPayinfo" + sql));
		page.setStart(++s);
		page.setLimit(l = l == 0 ? 30 : l);
		return SUCCESS;
	}

	public String getAccountInfo() {
		LOG.info("读取签约信息数据...");
		UserView m = (UserView) getRequest().getSession().getAttribute(
				"mpay_user");
		int s = Integer.valueOf(start);
		int l = Integer.valueOf(limit);
		String sql = "";
		if (m.getIsAll() == 1) {
			sql = " where 1=1 ";
		} else {
			sql = " where yht_orgcode = '" + m.getId() + "' ";
		}
		yhtAccountNo = yhtAccountNo == null ? "" : yhtAccountNo.trim();
		if (!yhtAccountNo.equals("")) {
			sql += " and YHT_ACCOUNT_NO like '%" + yhtAccountNo + "%' ";
		}
		yhtAccountName = yhtAccountName == null ? "" : yhtAccountName.trim();
		if (!yhtAccountName.equals("")) {
			sql += " and YHT_ACCOUNT_NAME like '%" + yhtAccountName + "%' ";
		}
		int start = 1;
		if (s != 0)
			start = s / 30 + 1;
		// System.out.println(sql);
		List userList = serviceOracle
				.query("from WtYhtAccount" + sql, start, l);
		page = new Page();
		page.setRoot(userList);
		page.setTotalProperty(serviceOracle
				.countQuery("select count(*) from WtYhtAccount" + sql));
		page.setStart(++s);
		page.setLimit(l = l == 0 ? 30 : l);
		return SUCCESS;
	}

	public String addSign() {
		LOG.info("新签约。。。");
		UserView m = (UserView) getRequest().getSession().getAttribute(
		"mpay_user");
		String id="";
		List tmp = serviceOracle.query(" from WtYhtAccount order by yht_id desc ");
		if(tmp.size()==0)
			id = "186000000001";
		else{
			WtYhtAccount s = (WtYhtAccount)tmp.get(0);
			int i = Integer.valueOf((s.getYhtId()+"").substring(3))+1;
			id = "186"+Util.addZero(i+"", 9);
		}
		WtYhtAccount w = new WtYhtAccount();
		w.setYhtAccountName(yhtAccountName);
		w.setYhtAccountNo(yhtAccountNo.replace(" ", ""));
		w.setYhtAccountType(yhtAccountType);
		w.setYhtAddress(yhtAddress);
		w.setYhtBankCode(yhtBankCode);
		w.setYhtBankName(yhtBankName);
		w.setYhtCadt(new Timestamp(new Date().getTime()));
		w.setYhtIdNo(yhtIdNo);
		w.setYhtOrgcode(m.getId()+"");
		w.setYhtPhone(yhtPhone);
		w.setYhtResponse("00");
		w.setYhtZip(yhtZip);
		w.setYhtUpdt(new Timestamp(new Date().getTime()));
		w.setYhtId(id);
		try {
			serviceOracle.save(w);
			message = "签约成功！<br>授权号:"+id;
			success = true;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			message = "失败成功！";
			success = false;
		}
		
		return SUCCESS;
	}

}
